 //控制层 
app.controller('goodsController' ,function($scope,$controller,goodsService,uploadService,itemCatService,typeTemplateService,$location){	
	
	$controller('baseController',{$scope:$scope});//继承
	
	$scope.entity={goods:{},goodsDesc:{itemImages:[],specificationItems:[]}};//定义页面实体结构
	$scope.image_entity={};
	$scope.searchEntity={};//定义搜索对象 
	$scope.status=['未审核','已审核','审核未通过','关闭'];//商品状态
	$scope.itemCatList=[];//商品分类列表
	
	//检查是否打勾
	$scope.checkAttributeValue=function(specName,optionName){
		var items= $scope.entity.goodsDesc.specificationItems;
		var object= $scope.searchObjectByKey(items,'attributeName',specName);
		if(object==null){
			return false;
		}else{
			if(object.attributeValue.indexOf(optionName)>=0){
				return true;
			}else{
				return false;
			}
		}			
	}

	
	//查询实体 
	$scope.findOne=function(){			
		var id= $location.search()['id'];//获取参数值
		if(id==null){
			return ;
		}
		goodsService.findOne(id).success(
			function(response){
				$scope.entity= response;	
				//向富文本编辑器添加商品介绍
				editor.html($scope.entity.goodsDesc.introduction);
				//显示图片列表
				$scope.entity.goodsDesc.itemImages=JSON.parse($scope.entity.goodsDesc.itemImages);
				//显示扩展属性
				$scope.entity.goodsDesc.customAttributeItems= JSON.parse($scope.entity.goodsDesc.customAttributeItems);
				//规格				
				$scope.entity.goodsDesc.specificationItems=JSON.parse($scope.entity.goodsDesc.specificationItems);
				
				//SKU列表规格列转换				
				for( var i=0;i<$scope.entity.itemList.length;i++ ){
					$scope.entity.itemList[i].spec = JSON.parse( $scope.entity.itemList[i].spec);		
				}

			}
		);				
	}

	
	
	//查询所有商品分类
	$scope.findItemCatList=function(){
		itemCatService.findAll().success(function(response) {
			for (var i = 0; i < response.length; i++) {
				$scope.itemCatList[response[i].id]=response[i].name;
			}
		});
	}
	
	
	
	//勾选规格触发事件
	$scope.updateSpecAttribute=function($event,name,value){
		var  obj = $scope.searchObjectByKey($scope.entity.goodsDesc.specificationItems,'attributeName',name);
		if(obj!=null){
			//如果勾选
			if($event.target.checked ){
				obj.attributeValue.push(value);		
			}else{
				obj.attributeValue.splice(obj.attributeValue.indexOf(value),1);//移除选项
				//如果选项都取消了，将此条记录移除
				if(obj.attributeValue.length==0){
					$scope.entity.goodsDesc.specificationItems.splice(
					$scope.entity.goodsDesc.specificationItems.indexOf(obj),1);
				}

			}
			
		}else{
			$scope.entity.goodsDesc.specificationItems.push({"attributeName":name,"attributeValue":[value]});
		}
	}
	
	//创建SKU列表
	$scope.createItemList=function(){
		$scope.entity.itemList=[{spec:{},price:0,num:99999,status:'0',isDefault:'0' } ];//初始化
		
		var items=  $scope.entity.goodsDesc.specificationItems;
		for (var i = 0; i < items.length; i++) {
			$scope.entity.itemList = $scope.addColumn($scope.entity.itemList,items[i].attributeName,items[i].attributeValue );
		}
	}	
	//添加列对象
	$scope.addColumn=function(list,columnName,conlumnValues){
		var newList=[];//新的集合
		for(var i=0;i<list.length;i++){
			var oldRow= list[i];
			for(var j=0;j<conlumnValues.length;j++){
				var newRow= JSON.parse( JSON.stringify( oldRow )  );//深克隆
				newRow.spec[columnName]=conlumnValues[j];
				newList.push(newRow);
			}    		 
		} 		
		return newList;
	}




	
	//列表中移除图片
    $scope.remove_image_entity=function(index){
    	    $scope.entity.goodsDesc.itemImages.splice(index,1);
    }
    
    $scope.add_image_entity=function(){    	
        $scope.entity.goodsDesc.itemImages.push($scope.image_entity);
    }
    
    //一级类目列表
    $scope.selectItemCat1List=function(){
    	itemCatService.findByParentId(0).success(
       		 function(response){
       			 $scope.itemCat1List=response;
       			 $scope.entity.goods.category1Id=$scope.itemCat1List[0].id;
       		 }
         );
    }
    //二级类目
    $scope.$watch('entity.goods.category1Id', function(newValue, oldValue) {          
    	//根据选择的值，查询二级分类
    	itemCatService.findByParentId(newValue).success(
    		function(response){
    			$scope.itemCat2List=response; 
    			$scope.entity.goods.category2Id=$scope.itemCat2List[0].id;
    		}
    	);  
    
    });
    //读取三级分类
    $scope.$watch('entity.goods.category2Id', function(newValue, oldValue) {          
        	//根据选择的值，查询二级分类
        	itemCatService.findByParentId(newValue).success(
        		function(response){
        			$scope.itemCat3List=response; 
        			$scope.entity.goods.category3Id=$scope.itemCat3List[0].id;
        		}
        	);    	
     });
    //读取模板id
    $scope.$watch('entity.goods.category3Id', function(newValue, oldValue) {
         	//根据选择的值，查询三级级分类
    	itemCatService.findOne(newValue).success(function(response) {
    		 $scope.entity.goods.typeTemplateId=response.typeId;
		})
    });
    
    //读取品牌列表
    $scope.$watch('entity.goods.typeTemplateId', function(newValue, oldValue) {
    	
    	typeTemplateService.findOne(newValue).success(function(response) {
    		$scope.typeTemplate=response;//获取类型模板
    		$scope.typeTemplate.brandIds=JSON.parse($scope.typeTemplate.brandIds);//品牌列表
    		$scope.entity.goods.brandId=$scope.typeTemplate.brandIds[0].id;
    		//如果没有ID，则加载模板中的扩展数据
			if($location.search()['id']==null){
				$scope.entity.goodsDesc.customAttributeItems = JSON.parse($scope.typeTemplate.customAttributeItems);//扩展属性	
			}

		});
    	//查询规格列表
    	typeTemplateService.findSpecList(newValue).success(function(response) {
  			  $scope.specList=response;
    	});
    
    });
    
    


    	
    

	
	//上传图片
	$scope.uploadFile=function(){	  
		uploadService.uploadFile().success(function(response) {        	
        	if(response.success){//如果上传成功，取出url
        		$scope.image_entity.url=response.message;//设置文件地址
        	}else{
        		alert(response.message);
        	}
        }).error(function() {           
        	     alert("上传发生错误");
        });        
    };

	
    //读取列表数据绑定到表单中  
	$scope.findAll=function(){
		goodsService.findAll().success(
			function(response){
				$scope.list=response;
			}			
		);
	}    
	
	//分页
	$scope.findPage=function(page,rows){			
		goodsService.findPage(page,rows).success(
			function(response){
				$scope.list=response.rows;	
				$scope.paginationConf.totalItems=response.total;//更新总记录数
			}			
		);
	}
	
	
	//保存 
	$scope.save=function(){				
		$scope.entity.goodsDesc.introduction=editor.html();
		var serviceObject;//服务层对象 
		alert("id"+$scope.entity.goods.id);
		if($scope.entity.goods.id!=null){//如果有ID
			alert('update');
			serviceObject=goodsService.update( $scope.entity ); //修改  
		}else{
			alert('add');
			serviceObject=goodsService.add( $scope.entity  );//增加 
		}				
		serviceObject.success(
			function(response){
				if(response.success){
					alert('操作成功');					
					$scope.entity={};
					editor.html("");
				}else{
					alert(response.message);
				}
			}		
		);
				
	}
	
	
	//保存 
	$scope.add=function(){	
		$scope.entity.goodsDesc.introduction=editor.html();
		goodsService.add( $scope.entity  ).success(
			function(response){
				if(response.success){
					alert('保存成功');					
					$scope.entity={};
					editor.html('');//清空富文本编辑器
				}else{
					alert(response.message);
				}
			}		
		);				
	}

	
	 
	//批量删除 
	$scope.dele=function(){			
		//获取选中的复选框			
		goodsService.dele( $scope.selectIds ).success(
			function(response){
				if(response.success){
					$scope.reloadList();//刷新列表
					$scope.selectIds=[];
				}						
			}		
		);				
	}
	
	
	//搜索
	$scope.search=function(page,rows){			
		goodsService.search(page,rows,$scope.searchEntity).success(
			function(response){
				$scope.list=response.rows;	
				$scope.paginationConf.totalItems=response.total;//更新总记录数
			}			
		);
	}
	
	
	
    
});	
